package com.sd.common.constant;
/**
 * 公共模块常量类
 * @author yexinming
 * @date 2020/4/30 22:46
 */
public class CommonConstants {

    /**
     *默认token超时时间
     */
    public static final long Default_Token_ExpireTime = 5 * 60 * 1000;
    /**
     * 文件路径类型
     */
    public enum PathTpeEnum{
        /**相对路径**/
       RELATIVE("relative","相对路径"),
        /**绝对路径**/
       ABSOLUTE("absolute","绝对路径");

       private String value;
       private String name;
       PathTpeEnum(String value,String name){
           this.name = name;
           this.value = value;
       }
        public String getValue() {
            return value;
        }
    }
    /**
     * 错误码code可以使用纯数字,使用不同区间标识一类错误，也可以使用纯字符，也可以使用前缀+编号
     *
     * 错误码：ERR + 编号
     *
     * 可以使用日志级别的前缀作为错误类型区分 Info(I) Error(E) Warning(W)
     *
     * 或者以业务模块 + 错误号
     *
     * TODO 错误码设计
     *
     * Alipay 用了两个code，两个msg(https://docs.open.alipay.com/api_1/alipay.trade.pay)
     */
    public enum ApiCodeEnum{
        SUCCESS("10000", "success"),
        UNKNOW_ERROR("ERR0001","未知错误"),
        PARAMETER_ERROR("ERR0002","参数错误"),
        TOKEN_EXPIRE("ERR0003","认证过期"),
        REQUEST_TIMEOUT("ERR0004","请求超时"),
        SIGN_ERROR("ERR0005","签名错误"),
        REPEAT_SUBMIT("ERR0006","请不要频繁操作"),
        ;
        /** 代码 */
        private String code;

        /** 结果 */
        private String msg;
        ApiCodeEnum(String code,String msg){
          this.code = code;
          this.msg = msg;
        }

        public static boolean contains(String code) {
            ApiCodeEnum[] values = values();
            for (ApiCodeEnum value : values) {
                if (value.getCode().equals(code)) {
                    return true;
                }
            }
            return false;
        }

        public static String getMsg(String code) {
            ApiCodeEnum[] values = values();
            for (ApiCodeEnum value : values) {
                if (value.getCode().equals(code)) {
                    return value.getMsg();
                }
            }
            return null;
        }

        public String getCode() {
            return code;
        }

        public String getMsg() {
            return msg;
        }
    }

}
